package com.quanyan.user.service;

import com.quanyan.api.APIResponse;
import com.quanyan.common.Plugin.PageObj;
import com.quanyan.user.model.vo.request.ReqQuestion;
import com.quanyan.user.model.vo.response.RespQuestion;
import com.quanyan.user.model.vo.response.RespQuestionCategory;
import com.quanyan.user.model.vo.response.RespQuestionDetail;
import scala.Int;

import java.util.List;

/**
 * Created by huadongyang on 2016/11/4.
 */
public interface QuestionService {
    /**
     * 查询问题列表
     *
     * @param reqQuestion
     * @return
     */
    APIResponse<PageObj<List<RespQuestion>>> queryQuestions(ReqQuestion reqQuestion);

    /**
     * 获取问题详情
     *
     * @param id 问题id
     * @return
     */
    APIResponse<RespQuestionDetail> getQuestionDetail(Integer id);

    /**
     * 获取问题分类列表
     *
     * @return
     */
    APIResponse<List<RespQuestionCategory>> queryQuestionCategories();

    /**
     *
     * @param id  问题ID
     * @param solve 0: 未解决 1：已解决
     * @param isCancel 是否取消 0：取消 1：选中
     * @param uid 用户id 可为空
     * @param ip 客户端访问接口的ip地址
     * @return
     */
    APIResponse statsSolveQuestionNum(Integer id, Byte solve,Byte isCancel,Integer uid, String ip);

    /**
     * 统计问题PV和UV
     * @param id 问题Id
     * @param uid 用户Id
     * @param ip  访问接口的IP地址
     */
    APIResponse statsQuestionPVandUV(Integer id, Integer uid, String ip);

}
